package entity

// 用户游戏币
type UserCoin struct {
	Id      int64 `json:"id" gorm:"column:id;primarykey;not null;"` // 自增id
	UserId  int64 `json:"user_id" gorm:"user_id"`                   // 用户id
	Balance int64 `json:"balance" gorm:"balance"`                   // 游戏币余额
}

func (g *UserCoin) TableName() string {
	return "user_coin"
}

// 用户游戏币申请记录
type UserApplyCoin struct {
	Id             int64  `json:"id" gorm:"column:id;primarykey;not null;"` // 自增id
	UserId         int64  `json:"user_id" gorm:"user_id"`                   // 用户id
	Coin           int64  `json:"coin" gorm:"coin"`                         // 申请的游戏币数量
	ApplyTime      int64  `json:"apply_time" gorm:"apply_time"`             // 申请时间
	State          int64  `json:"state" gorm:"apply_time"`                  // 申请状态  0：申请中  1：申请成功加入余额  2：申请失败
	AgreeTime      int64  `json:"agree_time" gorm:"agree_time"`             // 通过时间
	AdminOperation string `json:"admin_operation" gorm:"admin_operation"`   // 操作的后台管理员
}

func (g *UserApplyCoin) TableName() string {
	return "user_apply_coin"
}

// 用户游戏币使用记录
type UserCoinLog struct {
	Id        int64 `json:"id" gorm:"column:id;primarykey;not null;"` // 自增id
	UserId    int64 `json:"user_id" gorm:"user_id"`                   // 用户id
	Coin      int64 `json:"coin" gorm:"coin"`                         // 申请的游戏币数量
	RoomId    int64 `json:"room_id" gorm:"room_id"`                   // 房间id
	Balance   int64 `json:"balance" gorm:"balance"`                   // 使用后的余额
	CreatedAt int64 `json:"created_at" gorm:"created_at"`             // 使用时间
}

func (g *UserCoinLog) TableName() string {
	return "user_coin_log"
}
